package admrouter

import (
	"github.com/gin-gonic/gin"
	"yundian/internel/app/handlers/pcl/admin/devicehandler"
	"yundian/internel/app/middlewares"
	"yundian/internel/pkg/dingo"
)

func InitDeviceRouter() dingo.ApiRouter {
	return func(g *gin.RouterGroup) {
		{
			// 设备相关API
			d := g.Group("device")
			d.Use(middlewares.JwtAuthMiddleware)
			d.GET("", devicehandler.FetchDeviceList)                       // 获取设备列表
			d.PUT("", devicehandler.UpdateDeviceTypeById)                  // 修改设备类型
			d.PUT("type-change", devicehandler.UpdateDeviceTypeByPlaceId)  // 修改设备类型
			d.DELETE("", devicehandler.DeleteDeviceBySn)                   // 删除设备信息
			d.DELETE("del", devicehandler.DeleteDeviceById)                // 删除设备信息
			d.PUT("unbind", devicehandler.UnBindDevice)                    // 删除设备信息
			d.POST("batch", devicehandler.BatchInsertDevice)               // 批量新增设备
			d.GET("pre", devicehandler.GetPreDeviceSn)                     // 获取设备批号
			d.GET("sn-count", devicehandler.GetSnAndCount)                 // 获取设备序号与设备条数
			d.POST("bind", devicehandler.HandleBindDevice)                 // 绑定设备
			d.POST("bind-ageng", devicehandler.HandleBindDeviceToAgent)    // 代理商绑定设备
			d.POST("bind-room", devicehandler.HandleBindDeviceAndRoom)     // 绑定设备与房间
			d.POST("get-room-list", devicehandler.HandleGetDeviceRoomList) // 查询设备房间列表
		}
		{
			// 设备类型相关API
			r := g.Group("device")
			r.Use(middlewares.JwtAuthMiddleware)                       // 需要登录
			r.GET("type", devicehandler.HandleGetDeviceTypeList)       //  获取设备类型列表
			r.POST("type", devicehandler.HandleInsertDeviceType)       //  添加设备类型
			r.PUT("type", devicehandler.HanleUpdateDeviceType)         //  修改设备类型
			r.DELETE("type", devicehandler.HandleDeleteDeviceType)     //  删除设备类型
			r.PUT("type/status", devicehandler.HandleDeviceTypeStatus) //  设备类型状态

			r.POST("type/price", devicehandler.HandleInsertDeviceRule)
			r.PUT("type/price", devicehandler.HandleUpdateDeviceRule)

			r.POST("type/draw", devicehandler.HandleInsertDeviceTypeDraw)
			r.PUT("type/draw", devicehandler.HandleUpdateDeviceTypeDraw)
		}
		{
			// 设备规则套餐相关API
			//r := g.Group("device")
			//r.Use(middlewares.JwtAuthMiddleware) // 需要登录
			//r.GET("rule", devicehandler.HandleGetDeviceRuleList)
			//r.POST("rule", devicehandler.HandleInsertDeviceRule)
			//r.PUT("rule", devicehandler.HandleUpdateDeviceRule)
			//r.DELETE("rule", devicehandler.HandleDeleteDeviceRule)
		}
	}
}
